<?php

// 分析枚举类型配置值 格式 a:名称1,b:名称2
function parse_config_attr($string) {
	$array = preg_split('/[,;\r\n]+/', trim($string, ",;\r\n"));
	if(strpos($string,':')){
		$value  =   array();
		foreach ($array as $val) {
			list($k, $v) = explode(':', $val);
			$value[$k]   = $v;
		}
	}else{
		$value  =   $array;
	}
	return $value;
}


/**
 * 获取配置的分组
 * @param string $group 配置分组
 * @return string
 */
function get_config_group($group=0,$all=false){
	$list = config('CONFIG_GROUP_LIST');
	if($all)return $list;

	return $group?$list[$group]:'';
}

/**
 * 获取配置的类型
 * @param string $type 配置类型
 * @return string
 */
function get_config_type($type=0,$all=false){
	$list = config('CONFIG_TYPE_LIST');
	if($all)return $list;

	return $list[$type];
}


if (!function_exists('get_rules')) {

    //获取当前登录管理员的权限节点信息
    function get_rules(){
        //获取缓存数据
        $save_pre = config("common.admin_login_save_pre");
        $rule = session($save_pre.'_rules');
        if($rule)return unserialize($rule);

        $aid=is_login();
        if(!$aid)return false;
        $groups=model('admin')->where('id',$aid)->value('groups');
        if(empty($groups))return false;

        $map[] = ['id','in',$groups];
        $map[] = ['state','=',1] ;
        $map[] = ['hide_flag','=',0] ;
        $groups = model('auth_group')->where($map)->column('rules');
        if(!$groups)return false;

        //保存用户所属用户组设置的所有权限规则id
        $ids = [];
        foreach ($groups as $v)$ids=array_merge($ids, explode(',', $v));
        $ids_ary = array_unique($ids);
        session($save_pre.'_rules',serialize($ids_ary));

        return $ids_ary;
    }
}


if(!function_exists('get_admin_login_file')){

    //获取管理员等入口文件名称
    function get_admin_login_file(){
        $file_login=config('common.admin_login_file');
        return $file_login?$file_login:'admin';
    }

}
